package com.youlu.campus.service.rank;

import com.youlu.campus.entity.ActivityTaskInfo;
import com.youlu.campus.entity.UserPO;
import com.youlu.campus.entity.VO.RankingListQueryVO;
import com.youlu.campus.entity.VO.req.RankingListResVO;

public interface UserRankListService {
    /**
     * 获取用户排行榜
     *
     * @param req
     * @param userPO
     * @param taskInfo
     * @return
     */
    RankingListResVO getUserAllRankList(RankingListQueryVO req, UserPO userPO, ActivityTaskInfo taskInfo);

    String getAllRankCountryKey(String activityId, String taskId);


    String getAllRankProvinceKey(String activityId, String taskId, String province);

    /**
     * 更新用户全国榜数据
     *
     * @param activityId
     * @param taskId
     * @param q
     */
    void updateRankCountry(String activityId, String taskId, String userId, Double q, Double qTotal);

    /**
     * 删除该用户全国榜数据
     *
     * @param activityId
     * @param userId
     */
    void deleteRankCountry(String activityId, String taskId, String userId);

    /**
     * 更新用户省榜数据
     *
     * @param activityId
     * @param taskId
     */
    void updateRankProvince(String activityId, String taskId, String userId, String province,  Double qTotal);

    /**
     * 删除该用户 省 榜数据
     *
     * @param activityId
     * @param userId
     */
    void deleteRankProvince(String activityId, String taskId, String userId);

    /**
     * 获取用户省
     *
     * @param userId
     * @param activityId
     * @return
     */
    String getUserProvince(String userId, String activityId);
}
